<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>基础使用</title>
    <script src="/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <div>
        <h2>计算属性简写</h2>
        <input type="text" v-model="firstName" />
        <input type="text" v-model="lastName" />
        <p>{{fullName}}</p>
        <button @click="setFullName">修改</button>
      </div>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: "#app",
        data() {
          return {
            firstName: "",
            lastName: "",
          };
        },
        computed: {
          fullName: {
            //当计算属性被读取的时候，就会调用get方法，如果计算属性只有get方法则可以直接简介 `计算属性(){return XXX}`
            get() {
              return `${this.firstName} - ${this.lastName}`;
            },
            //当计算属性被设置的时候，就会调用set方法，并且set方法接收一个参数，这个参数就是被设置的值，当计算属性被设置以后做什么事情，根据情况来写就行
            set(value) {
              [this.firstName, this.lastName] = value.split(" ");
            },
          },
        },
        methods: {
          setFullName() {
            this.fullName = "wang zhongwang";
          },
        },
      });
    </script>
  </body>
</html>
